home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 001a / autopcom.zip / AUTOPRCM.BAS next >
BASIC Source File  |  1986-03-26  |  10KB  |  184 lines

  1. 10 ' AUTOPRCM.BAS - John L. O'Boyle - circa March '86
  2. 20 ' This program was developed after seeing a version originally written
  3. 30 ' by Keith Peterson.
  4. 40 CLS:KEY OFF:DIM F$(100):DIM FX$(100):Q$=CHR$(34):DF$ = "D:\TEMP\"
  5. 50 PRINT"          ProComm File Transfer Command File Generator."
  6. 60 PRINT:PRINT" Creates a ProComm .CMD file to speed up downloads and minimize
  7. 70 PRINT" on line time to host systems.";
  8. 80 LOCATE 5:PRINT " Enter DRV:subdir to store files (return for "+DF$+")";
  9. 90 INPUT DR$:PRINT:IF DR$="" THEN DR$=DF$
  10. 100 IF RIGHT$(DR$,1) <> "\" THEN BEEP:LOCATE 15,5:PRINT "Invalid Subdirectory Format - Please re-enter";:GOTO 80
  11. 110 PRINT "  Select one of the following Host Systems - by NUMBER!"
  12. 120 PRINT
  13. 130 PRINT "         PC-Host...................................1"
  14. 140 PRINT "         FIDO......................................2"
  15. 150 PRINT "         RBBS......................................3"
  16. 160 PRINT "         EXEC-PC...................................4"
  17. 170 PRINT "         IBBS Systems..............................5"
  18. 180 PRINT "         PC-Board Systems..........................6"
  19. 190 PRINT "         The Source IBMSIG.........................7"
  20. 200 HOST$=INKEY$:IF HOST$="" THEN GOTO 200
  21. 210 HOST=VAL(HOST$):IF HOST < 1 OR HOST > 7 THEN BEEP:GOTO 200
  22. 220 ON HOST GOTO 560, 890, 1130, 1220, 1340, 1420, 1580
  23. 230 CLS:LOCATE 4,4:PRINT "Select a "+HOSTSYS$+" File Protocol - by NUMBER!"
  24. 240 PRINT:PRINT "          XMODEM..........................1"
  25. 250 ON HOST GOTO 590, 920, 1160, 1700, 1700, 1440, 1700
  26. 260 IF XONLY$="Y" THEN CLS:LOCATE 2,4:PRINT "All "+HOSTSYS$+" File Transfers will be via XModem":PRINT:GOTO 300
  27. 270 IF XONLY$="K" THEN CLS:LOCATE 2,4:PRINT "All "+HOSTSYS$+" File Transfers will be via Kermit!":PRINT:GOTO 300
  28. 280 IF (HOST=1) AND (XFER = 3)  THEN GOTO 1810
  29. 290 CLS:LOCATE 4
  30. 300 IF (HOST=1) AND (XFER > 3)  THEN GOTO 1710
  31. 310 IF HOST = 1 THEN PRINT "Enter name of file to download (return if done)";:GOTO 330
  32. 320 PRINT "Enter name of file to download (return if done)";
  33. 330 INPUT F$(N):IF F$(N)="" THEN 490
  34. 340 MYLINE=CSRLIN
  35. 350 IF LEN(F$(N)) > 12 THEN GOTO 400
  36. 360 V=INSTR(F$(N),"."):IF V=0 AND LEN(F$(N)) < 9 THEN GOTO 410
  37. 370 IF V > 9 THEN GOTO 400
  38. 380 IF V < 2 THEN GOTO 400
  39. 390 VL=(LEN(F$(N))-V):IF VL < 4 THEN GOTO 410
  40. 400 BEEP:COLOR 31:LOCATE 24,40:PRINT "FILESPEC  length error! - Re-enter!";:COLOR 7:LOCATE MYLINE-1,48:GOTO 330
  41. 410 UPIT$=F$(N):C$="":FOR I = 1 TO LEN(UPIT$)
  42. 420 A = ASC(MID$(UPIT$,I,1))
  43. 430 IF A > 96 AND A < 123 THEN A=A-32
  44. 440 C$=C$+CHR$(A):NEXT I:F$(N)=C$:N=N+1
  45. 450 MYLINE=CSRLIN:LOCATE 24,40:PRINT "                                   ";:LOCATE MYLINE
  46. 460 IF HOST>1 THEN CLIN=CSRLIN:LOCATE 1,60:PRINT N;:PRINT "Files so far.";:LOCATE CLIN-1
  47. 470 IF (HOST=1) AND (XFER < 5)  THEN GOTO 1710
  48. 480 GOTO 300
  49. 490 PRINT:PRINT "Do you wish an auto - logoff? ";
  50. 500 AL$=INKEY$:IF AL$ ="" THEN GOTO 500
  51. 510 IF AL$="Y" THEN AL$="y"  
  52. 520 AL = (AL$<>"y"):PRINT
  53. 530 CLS:PRINT:PRINT"Creating ProComm .CMD file (DOWNLOAD.CMD) for "+HOSTSYS$
  54. 540 OPEN "DOWNLOAD.CMD" FOR OUTPUT AS #1
  55. 550 ON HOST GOTO 720, 1030, 1160, 1250, 1360, 1520, 1600
  56. 560 HOSTSYS$="PC-Host"
  57. 570 RD$="<Q>uit or <C>hg Dir.":RT$="X to Abort>":PR$="or <Q>uit":CD$="menu or Dir. number":SD$="1"
  58. 580 GOTO 230
  59. 590 PRINT "          XModem...(CRC)..................2"
  60. 600 PRINT "          YModem..........................3"
  61. 610 PRINT "          YModem Batch....................4"
  62. 620 PRINT "          KERMIT..........................5"
  63. 630 PRINT
  64. 640 XFER$=INKEY$:IF XFER$="" THEN GOTO 640
  65. 650 XFER=VAL(XFER$):IF XFER < 1 OR XFER > 5 THEN BEEP:GOTO 640
  66. 660 IF XFER = 1 OR XFER = 2 THEN RPR$="X":RP$="%XDX"
  67. 670 IF XFER = 3 THEN RPR$="Y":RP$="%XDY"
  68. 680 IF XFER = 4 THEN RPR$="Y":RP$="%XDZ"
  69. 690 'IF XFER = 4 THEN GOTO 3040 'Flag 2.2 Ymodem Batch Problem
  70. 700 IF XFER = 5 THEN RPR$="K":RP$="%XDK":RT$="via Kermit =="
  71. 710 GOTO 280
  72. 720 FOR X=0 TO N-1: IF X=0 THEN 740
  73. 730 PRINT#1,"%I"+Q$+RD$+Q$
  74. 740 PAIR$=FX$(X):XXX=INSTR(PAIR$,";")
  75. 750 HDR$=LEFT$(FX$(X),(XXX-1))
  76. 760 HXX=LEN(FX$(X)):HFN=HXX-XXX
  77. 770 HFN$=RIGHT$(FX$(X),HFN)
  78. 780 IF HDR$=HDRPRV$ THEN GOTO 800
  79. 790 PRINT#1,"%T"+Q$+"C!"+Q$:PRINT#1,"%I"+Q$+CD$+Q$:PRINT#1,"%T"+Q$+HDR$+"*!"+Q$:PRINT#1,"%I"+Q$+RD$+Q$
  80. 800 PRINT#1,"%W"+Q$+SD$+Q$:PRINT#1,"%T"+Q$+HFN$+"!"+Q$:PRINT#1,"%I"+Q$+PR$+Q$
  81. 810 PRINT#1,"%W"+Q$+SD$+Q$:PRINT#1,"%T"+Q$+RPR$+"!"+Q$:PRINT#1,"%I"+Q$+RT$+Q$
  82. 820 IF XFER > 3 THEN PRINT#1,RP$:GOTO 840
  83. 830 PRINT#1,RP$+Q$+DR$+F$(X)+Q$
  84. 840 HDRPRV$=HDR$
  85. 850 NEXT X
  86. 860 IF AL THEN 1680
  87. 870 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"Q!"+Q$:PRINT#1,"%I"+Q$+" ?"+Q$:PRINT#1,"%T"+Q$+"Q!"+Q$
  88. 880 PRINT#1,"%I"+Q$+":>"+Q$:PRINT#1,"%T"+Q$+"Q!"+Q$:PRINT#1,"%H":PRINT#1,"%Q":GOTO 1680
  89. 890 HOSTSYS$="FIDO"
  90. 900 RD$="? for help:":RT$="to start.":PR$="Q ?:":RFN$="Filename:":SD$="1"
  91. 910 GOTO 230
  92. 920 PRINT "          Telink..........................2"
  93. 930 PRINT "          Modem7..........................3"
  94. 940 PRINT "          Kermit..........................4"
  95. 950 LOCATE 22,6:PRINT "All "+HOSTSYS$+" Protocols will invoke CRC where possible!";
  96. 960 XFER$=INKEY$:IF XFER$="" THEN GOTO 960
  97. 970 XFER=VAL(XFER$):IF XFER < 1 OR XFER > 5 THEN BEEP:GOTO 960
  98. 980 IF XFER = 1 THEN RPR$="XC":RP$="%XDX"
  99. 990 IF XFER = 2 THEN RPR$="TC":RP$="%XDT"
  100. 1000 IF XFER = 3 THEN RPR$="MC":RP$="%XDM"
  101. 1010 IF XFER = 4 THEN RPR$="K":RP$="%XDK"
  102. 1020 GOTO 280
  103. 1030 FOR X=0 TO N-1: IF X=0 THEN 1060
  104. 1040 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"D!"+Q$:PRINT#1,"%I"+Q$+PR$+Q$
  105. 1050 PRINT#1,"%T"+Q$+RPR$+Q$:PRINT#1,"%I"+Q$+RFN$+Q$
  106. 1060 PRINT#1,"%T"+Q$+F$(X)+"!"+Q$:PRINT#1,"%I"+Q$+RT$+Q$
  107. 1070 IF XFER > 1 THEN PRINT#1,RP$:GOTO 1090
  108. 1080 PRINT#1,RP$+Q$+F$(X)+"!"+Q$
  109. 1090 NEXT X
  110. 1100 IF AL THEN 1680
  111. 1110 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"G!"+Q$:PRINT#1,"%I"+Q$+"(y,n):"+Q$
  112. 1120 PRINT#1,"%T"+Q$+"N!"+Q$:PRINT#1,"%W"+Q$+SD$+Q$:PRINT#1,"%H":PRINT#1,"%Q":GOTO 1680
  113. 1130 HOSTSYS$="RBBS":XONLY$="Y"
  114. 1140 RD$="[DIR=ALL]--> ":RT$="file=":RP$="%XDX":SD$="1"
  115. 1150 GOTO 260
  116. 1160 FOR X=0 TO N-1: IF X=0 THEN 1180
  117. 1170 PRINT#1,"%I"+Q$+RD$+Q$
  118. 1180 PRINT#1,"%T"+Q$+"D;"F$(X)";X!"+Q$:PRINT#1,"%I"+Q$+RT$+F$(X)Q$:PRINT#1,RP$+Q$+DR$+F$(X)+Q$
  119. 1190 NEXT X
  120. 1200 IF AL THEN 1680
  121. 1210 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"G!"+Q$:PRINT#1,"%H":PRINT#1,"%Q":GOTO 1680
  122. 1220 HOSTSYS$="EXEC-PC":XONLY$="Y"                     
  123. 1230 RD$="(?=HELP) --> ":RT$="CONTROL-X To Cancel":RFN$="(ENTER to quit) --> ":RPR$="X":PR$="X,Q,?) ":SD$="1":RP$="%XDX"
  124. 1240 GOTO 260
  125. 1250 FOR X=0 TO N-1: IF X=0 THEN 1270
  126. 1260 PRINT#1,"%I"+Q$+RD$+Q$
  127. 1270 PRINT#1,"%T"+Q$+"D"+Q$:PRINT#1,"%I"+Q$+RFN$+Q$:PRINT#1,"%T"+Q$+F$(X)+"!"+Q$
  128. 1280 PRINT#1,"%I"+Q$+PR$+Q$:PRINT#1,"%T"+Q$+RPR$+Q$:PRINT#1,"%I"+Q$+RT$+Q$
  129. 1290 PRINT#1,RP$+Q$+DR$+F$(X)+Q$
  130. 1300 NEXT X
  131. 1310 IF AL THEN 1680
  132. 1320 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"G"+Q$:PRINT#1,"%I"+Q$+"choice --> "+Q$
  133. 1330 PRINT#1,"%T"+Q$+"N"+Q$:PRINT#1,"%H":PRINT#1,"%Q":GOTO 1680
  134. 1340 HOSTSYS$="IBBS Systems":XONLY$="Y"
  135. 1350 RD$="[DIR=ALL]-->":RT$="file=":RP$="%XDX":GOTO 260
  136. 1360 FOR X=0 TO N-1: IF X=0 THEN 1380
  137. 1370 PRINT#1,"%I"+Q$+RD$+Q$
  138. 1380 PRINT#1,"%T"+Q$+"D;"F$(X)";X!"+Q$:PRINT#1,"%I"+Q$+RT$+F$(X)Q$:PRINT#1,RP$+Q$+DR$+F$(X)+Q$
  139. 1390 NEXT X
  140. 1400 IF AL THEN 1680
  141. 1410 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"G!"+Q$:PRINT#1,"%H":PRINT#1,"%Q":GOTO 1680
  142. 1420 HOSTSYS$="PC-BOARD Systems":XONLY$="Y"
  143. 1430 RD$="Command?":RT$="to Abort.":RFN$="download?":SD$="2":RP$="%XDX":GOTO 230
  144. 1440 PRINT "          XModem...(CRC)..................2"
  145. 1450 PRINT "          YModem..........................3"
  146. 1460 PRINT
  147. 1470 XFER$=INKEY$:IF XFER$="" THEN GOTO 1470
  148. 1480 XFER=VAL(XFER$):IF XFER < 1 OR XFER > 5 THEN BEEP:GOTO 1470
  149. 1490 IF XFER = 1 OR XFER = 2 THEN RPR$="X":RP$="%XDX"
  150. 1500 IF XFER = 3 THEN RPR$="Y":RP$="%XDY"
  151. 1510 GOTO 280
  152. 1520 FOR X=0 TO N-1: IF X=0 THEN 1540
  153. 1530 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"D!"+Q$:PRINT#1,"%I"+Q$+RFN$+Q$
  154. 1540 PRINT#1,"%T"+Q$+F$(X)+"!"+Q$:PRINT#1,"%I"+Q$+RT$+Q$:PRINT#1,RP$+Q$+DR$+F$(X)+Q$
  155. 1550 NEXT X
  156. 1560 IF AL THEN 1680
  157. 1570 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"G!"+Q$:PRINT#1,"%W"+Q$+SD$+Q$:PRINT#1,"%H":PRINT#1,"%Q":GOTO 1680
  158. 1580 HOSTSYS$="The Source IBMSIG":XONLY$="K"
  159. 1590 RFN$="<.C>ancel:":RD$="(Y/N)?":RT$="computer.":RP$="%XDK":SD$="1":GOTO 260
  160. 1600 FOR X=0 TO N-1: IF X=0 THEN 1620
  161. 1610 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"Y!"+Q$:PRINT#1,"%I"+Q$+RFN$+Q$
  162. 1620 PRINT#1,"%T"+Q$+F$(X)+"!"+Q$:PRINT#1,"%I"+Q$+RT$+Q$:PRINT#1,RP$
  163. 1630 NEXT X
  164. 1640 IF AL THEN 1680
  165. 1650 PRINT#1,"%I"+Q$+RD$+Q$:PRINT#1,"%T"+Q$+"N!"+Q$:PRINT#1,"%I"+Q$+"<H>elp:"+Q$
  166. 1660 PRINT#1,"%W"+Q$+SD$+Q$:PRINT#1,"%T"+Q$+"QUIT!"+Q$:PRINT#1,"%I"+Q$+">"+Q$
  167. 1670 PRINT#1,"%T"+Q$+"OFF!"+Q$:PRINT#1,"%W"+Q$+"5"+Q$:PRINT#1,"%H":PRINT#1,"%Q"
  168. 1680 CLOSE 1:PRINT:PRINT"Ready to run ProComm.  At BBS file transfer menu enter ALT-F5.  Then"
  169. 1690 PRINT"enter .CMD file name 'DOWNLOAD'.":PRINT:PRINT"          Don't run unattended!"
  170. 1700 SYSTEM
  171. 1710 PRINT "Enter Dir#/Fil# pairs separated by ';'. eg; 15;3 ";
  172. 1720 CLIN=CSRLIN:INPUT FX$(NN):PRINT:IF FX$(NN)="" THEN N=NN:GOTO 490
  173. 1730 V=INSTR(FX$(NN),";"):IF V<1 THEN BEEP:LOCATE CLIN,50:GOTO 1720
  174. 1740 PAXR$=FX$(NN):XXX=INSTR(PAXR$,";"):HXR$=LEFT$(FX$(NN),(XXX-1))
  175. 1750 HXX=LEN(FX$(NN)):HXN=HXX-XXX:HXN$=RIGHT$(FX$(NN),HXN)
  176. 1760 IF VAL(HXR$) < 2 OR VAL(HXR$) > 99 THEN BEEP:LOCATE 25,17:PRINT "Directory out of Range - ReEnter!";:LOCATE CLIN,50:GOTO 1720
  177. 1770 IF VAL(HXN$) < 1 OR VAL(HXN$) > 99 THEN BEEP:LOCATE 25,17:PRINT "File Number out of Range - ReEnter!";:LOCATE CLIN,50:GOTO 1720
  178. 1780 NN=NN+1:CLIN=CSRLIN:LOCATE 25,17:PRINT "                                   ";:LOCATE 1,60:PRINT NN;:PRINT "Files so far.";:LOCATE CLIN-1
  179. 1790 IF (HOST=1) AND (XFER > 3)  THEN GOTO 1710
  180. 1800 GOTO 300
  181. 1810 CLS:LOCATE 24:PRINT "Ymodem for PC-Host systems is only valid for files greater than 1024 bytes!";
  182. 1820 LOCATE 25:PRINT ".CMD File will not operate properly if selected files are smaller!";
  183. 1830 LOCATE 4:GOTO 300
  184.